package org.springblade.modules.admin.vo.image.by;

import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.common.cache.DictCache;
import org.springblade.modules.admin.entity.MaintainCheckRecord;

import java.util.Date;
import java.util.List;

/**
 * @Date 16:23 2025/1/17
 * @Description {
 *   保养工作项历史图片
 * }
 * @Author lsay
 **/
@Data
public class ByPlanHistoryImgVO {

	/**
	 * 工单ID
	 */
	private Long planId;

	/**
	 * 工作项ID
	 */
	private Long templateContentId;

	/**
	 * 工作项名称
	 */
	private String templateContentName;

	/**
	 * 工单计划时间
	 */
	private Date planDate;

	/**
	 * 工作项图片地址
	 */
	private String imgUrl;

	@TableField(typeHandler = JacksonTypeHandler.class)
	private JSONObject recordData;

	/**
	 * 项目类型
	 */
	private String buildingType;

	/**
	 * 项目类型名称
	 */
	private String buildingTypeName;

	/**
	 * 项目名称
	 */
	private String buildingName;

	/**
	 * 电梯地址
	 */
	private String elevatorAddress;

	/**
	 * 工作项问题描述
	 */
	private String planQuestionDesc;

	/**
	 * 工单整体评价
	 */
	private String planScoreFutilityDesc;

	/**
	 * 工作项记录
	 */
	private List<MaintainCheckRecord> checkRecords;

	/**
	 * 品牌名称
	 */
	private String brandName;
	/**
	 * 产品型号
	 */
	private String brandVersionName;

	@ApiModelProperty(value = "省")
	private String provinceName;

	@ApiModelProperty(value = "市")
	private String cityName;

	@ApiModelProperty(value = "区")
	private String adName;

	/**
	 * 签到图片地址
	 */
	private String signImage;

	/**
	 * 签退图片地址
	 */
	private String signOutImage;

	/**
	 * AI识别结果：
	 * -1: -无法识别
	 *
	 * 0："合规"
	 *
	 * 1："存疑"(异常| 疑似合规)
	 *
	 * 2："不合规" (异常)
	 */
	private Integer imgResult;

	/**
	 * 结果判定：1-未判定 2-正确 3-错误
	 */
	private Integer imgStatus;

	/**
	 * 模型结果数据
	 */
	private String modelResult;

	/**
	 * 1-签到 2-签退 3-工作项内容
	 */
	private Integer imgFrom;

	public void setBuildingType(String buildingType) {
		if(ObjectUtil.isNotEmpty(buildingType)){
			this.buildingTypeName = DictCache.getValue("building_type",buildingType);
		}
		this.buildingType = buildingType;
	}

}
